import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

// 全局配置
import '@/assets/scss/reset.scss'
import 'element-ui/lib/theme-chalk/index.css'
import http from '@/api/config'
import './mock'

// 第三方插件
import ElementUI from 'element-ui'

Vue.use(ElementUI)
Vue.prototype.$http = http // 可以在全局中以 $http的方式使用axios了

Vue.config.productionTip = false

// 写路由守卫的代码
// 代码逻辑：先获取token然后判断token是否存在，如果存在就放行，否则跳转到登录
router.beforeEach((to, from, next) => {
  store.commit('getToken')
  let token = store.state.user.token
  if (!token && to.name !== 'login') {
    next({ name: 'login' })
  } else {
    next()
  }
})
new Vue({
  router,
  store,
  render: (h) => h(App),
  created() {
    // 怎么判断页面是否刷新了，页面刷新vue肯定重新渲染了，在这里 我们使用created这个钩子函数触发添加路由操作
    store.commit('addMenu', router)
  },
}).$mount('#app')
